#Pengertian ggplot2

suppressPackageStartupMessages({
  library(ggplot2)
  library(gganimate)
  library(htmltools)
  library(htmlwidgets)
  library(plotly)
  library(gifski)
  library(readr)
  library(readxl)
  
  Datavis <- read_excel("Datavis.xlsx")
})

Grafik Univariat

# membuat Plot sederhana dan mengubah backgroundnya dengan plot.background dan panel.background
ggplot(Datavis,aes(x=Angka_Harapan_Hidup))+geom_histogram(binwidth=3,fill="purple",color="green",alpha=0.8)+labs(title="Sebaran Angka Harapan Hidup",x="Angka Harapan Hidup",y="Angka")+theme(
  plot.background = element_rect(fill="green"),
  panel.background = element_rect(fill="black")
)

Grafik Bivariat (Scatter Plot)

# Membuat plot dengan variable x dan y
ggplot(Datavis,aes(x=Angka_Harapan_Hidup,y=Pendapatan_per_kapita))+geom_point(aes(color=Benua),size=1.5,alpha=0.7)+labs(title="Pendapatan Per Kapita & Angka Harapan Hidup",x="Angka Harapan Hidup",y="Pendapatan Per Kapita")+theme(
  plot.background = element_rect(fill="green"),
  panel.background = element_rect(fill="black")
)

Grafik Multivariat

  • Scatter Plot : Warna & Ukuran
# Membuat plot dan menambahkan warna dan ukuran yang berbeda setiap kategori dengan parameter color & size
ggplot(Datavis,aes(x=Pendapatan_per_kapita,y=Angka_Harapan_Hidup))+geom_point(aes(color=Benua,size=Populasi))+labs(title="Pendapatan Per Kapita & Angka Harapan Hidup",x="Pendapatan Per Kapita",y="Angka Harapan Hidup",color="Benua",size="Populasi")+theme(
  plot.background = element_rect(fill="green"),
  panel.background = element_rect(fill="#222831")
)

- Scatter Plot : Faceted

# Membuat Plot dan memisahkan Benua menggunakan facet_wrap()
ggplot(Datavis,aes(x=Pendapatan_per_kapita,y=Angka_Harapan_Hidup))+geom_point(aes(color=Benua,size=Jumlah_anak-1),alpha=0.7)+facet_wrap(~Benua)+labs(title="Pendapatan Per Kapita & Angka Harapan Hidup",x="Pendapatan Per Kapita",y="Angka Harapan Hidup",color="Warna",size="Populasi")+theme(
  plot.background = element_rect(fill="green"),
  panel.background = element_rect(fill="#222831")
)

- Scatter Plot : Faceted (Animated)

# Membuat Plot
plot <- ggplot(Datavis,aes(x=Pendapatan_per_kapita,y=Angka_Harapan_Hidup))+geom_point(aes(color=Benua,size=Jumlah_anak-1),alpha=0.7)+facet_wrap(~Benua)+labs(title="Pendapatan Per Kapita & Angka Harapan Hidup",x="Pendapatan Per Kapita",y="Angka Harapan Hidup",color="Warna",size="Populasi")+theme(
  plot.background = element_rect(fill="green"),
  panel.background = element_rect(fill="#222831")
)

# Menambahkan parameter tranisition kedalam plot
animated_plot <- plot+transition_time(Tahun)+ease_aes("linear")+labs(subtitle = paste("Tahun : {scales::label_number()(frame_time)}"))

# Merender dan menyimpan plot animasi ke dalam format .gif dengan gifski
animate(animated_plot,nframes=15,renderer=gifski_renderer("animated_scatter_plot_faceted.gif"))

Grafik Interaktif

  • Bubble Plot : Interaktif (Plotly)
# Membuat Plot
plot <- plot_ly(Datavis, x = ~Pendapatan_per_kapita, y = ~Angka_Harapan_Hidup, z = ~Populasi, type = "scatter3d", mode = "markers", size = 1,color=~Benua) %>%
  layout(title = "3D Scatter Plot",
         scene = list(xaxis = list(title = "Pendapatan per Kapita"),
                      yaxis = list(title = "Angka Harapan Hidup"),
                      zaxis = list(title = "Populasi")))

# Menampilkan plot
print(plot)
plot_browsable <- browsable(plot)
plot_browsable
# Menggunakan widget html
htmlwidgets::saveWidget(as_widget(plot), "3d_scatter_plot.html")